# -*- coding: utf-8 -*-
# 姓名:谚语
# 开发时间:2022/10/23 19:40
from comment.modules import db
from sqlalchemy import ForeignKey
from datetime import datetime


# 站内信的模型类
class Letter(db.Model):
    """
    收发消息的模型类
    """
    __tablename__ = 't_letter'  # 表名
    # primary_key 主键    autoincrement 自增
    id = db.Column(db.BIGINT, primary_key=True, autoincrement=True)
    sendID = db.Column(db.String(64), comment='发送者名字')
    recID = db.Column(db.BIGINT, comment='接受者ID')
    # 消息详情的ID   ForeignKey 外键
    detail_id = db.Column(db.BIGINT, ForeignKey('t_letter_detail.id'), comment='消息详情主键')
    # relationship函数是sqlalchemy对关系之间提供的一种便利的调用方式, backref参数则对关系提供反向引用的声明。
    # 一对多的例子，下添加uselist=False就变成了一对一。   lazy 懒加载。
    letter_detail = db.relationship('Letter_Detail', backref=db.backref('letter', lazy=True))
    state = db.Column(db.Integer, comment='持否已读（0未读；1已读）')


# 站内信详情的模型类
class Letter_Detail(db.Model):
    """
    消息详情的模型类, 和 收发消息模型类 是 一对多的关联关系
    """
    __tablename__ = 't_letter_detail'
    id = db.Column(db.BIGINT, primary_key=True, autoincrement=True)
    title = db.Column(db.String(64), comment='消息标题')
    detail = db.Column(db.String(256), comment='消息内容')
    # datetime.now() 默认当前系统时间(本地时间)
    pDate = db.Column(db.DateTime, default=datetime.now(), comment='发送的时间')
